package edu.chl.grupp11.aegas.main;

import edu.chl.grupp11.aegas.controller.AbstractActionController;
import edu.chl.grupp11.aegas.controller.FileControllerFactory;
import edu.chl.grupp11.aegas.controller.ILanguageController;
import edu.chl.grupp11.aegas.controller.IUpdateGUIController;
import edu.chl.grupp11.aegas.controller.TagControllerFactory;
import edu.chl.grupp11.aegas.controller.imp.ActionController;
import edu.chl.grupp11.aegas.controller.imp.LanguageController;
import edu.chl.grupp11.aegas.controller.imp.UpdateGUIController;
import edu.chl.grupp11.aegas.model.ConfigFactory;
import edu.chl.grupp11.aegas.view.MainView;

public class Main {

	public static void main(String[] args) {

		MainView mv = new MainView();
		IUpdateGUIController updateController = new UpdateGUIController(
				mv.getEditPanel(), mv.getFilePanel(), mv.getFileList(),
				mv.getTagList());
		AbstractActionController actionController = new ActionController(mv);
		FileControllerFactory.getFileController().addObserver(updateController);
		TagControllerFactory.getTagController().addObserver(updateController);
		mv.addObserver(actionController);

		actionController.addObserver(updateController);
		ILanguageController lc = new LanguageController(mv);
		ConfigFactory.getSharedConfig().addObserver(mv);
		mv.addObserver(lc);

	}
}
